package com.bwie.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class VerifyUtils {

    /**
     * 判断字符串中是否包含数字
     * @param str
     * @return
     */
    public static boolean containsNumber(String str) {
        String regex = ".*\\d.*";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        return matcher.matches();
    }

    /**
     * 判断字符串中是否包含小写字母
     * @param str
     * @return
     */
    public static boolean containsLowerCaseLetter(String str) {
        // 定义一个正则表达式，用于匹配至少一个或多个小写字母
        String regex = "[a-z]+";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建 matcher 对象
        Matcher matcher = pattern.matcher(str);
        // 检查字符串是否包含小写字母
        return matcher.find();
    }

    /**
     * 判断字符串中是否包含大写字母
     * @param str
     * @return
     */
    public static boolean containsUpperCaseLetter(String str) {
        // 定义一个正则表达式，用于匹配至少一个或多个大写字母
        String regex = "[A-Z]+";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建 matcher 对象
        Matcher matcher = pattern.matcher(str);
        // 检查字符串是否包含大写字母
        return matcher.find();
    }

    /**
     * 判断字符串中是否包含特殊字符
     * @param str
     * @return
     */
    public static boolean containsSpecialChars(String str, String specialChars) {
        // 定义一个正则表达式，用于匹配至少一个特殊字符
        String regex = "[@#+!$%^&*(),]";

        if(specialChars != null) {
            regex = "[" + specialChars + "]";
        }

        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建 matcher 对象
        Matcher matcher = pattern.matcher(str);
        // 检查字符串是否包含特殊字符
        return matcher.find();
    }

    /**
     * 判断字符串中是否包含特殊字符
     * @param str
     * @return
     */
    public static boolean containsSpecialChars(String str) {
        return containsSpecialChars(str, null);
    }

        /**
         * 判断字符串是否全部由汉字组成
         * @param str
         * @return
         */
    public static boolean isAllChinese(String str) {
        // 正则表达式，用于匹配整个字符串是否全部由汉字组成
        String regex = "^[\u4e00-\u9fa5]+$";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建 matcher 对象
        Matcher matcher = pattern.matcher(str);
        // 检查字符串是否全部由汉字组成
        return matcher.matches();
    }

}
